---
title: Кнопки
image: /images/user-guide/views/filter.png
---

<Frame>
  <img src="/images/user-guide/views/filter.png" alt="Header" />
</Frame>

Список кнопок и групп кнопок, использованных в приложении.

## Кнопка

<Tabs>

<Tab title="Usage">

```jsx
import { Button } from "@/ui/input/button/components/Button";

export const MyComponent = () => {
  return (
    <Button
      className
      Icon={null}
      title="Title"
      fullWidth={false}
      variant="primary"
      size="medium"
      position="standalone"
      accent="default"
      soon={false}
      disabled={false}
      focus={true}
      onClick={() => console.log("click")}
    />
  );
};
```

</Tab>

<Tab title="Props">

| Свойства     | Тип                   | Описание                                                                                                                                             |
| ------------ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| className    | строка                | Дополнительное имя класса для дополнительной стилизации                                                                                              |
| Иконка       | `React.ComponentType` | Необязательный компонент иконки, отображаемый на кнопке                                                                                              |
| заголовок    | строка                | Текстовое содержимое кнопки                                                                                                                          |
| полнаяШирина | boolean               | Определяет, должна ли кнопка занимать всю ширину контейнера                                                                                          |
| вариант      | строка                | Визуальный стиль кнопки. Включает опции `primary`, `secondary`, и `tertiary`                                                         |
| размер       | строка                | Размер кнопки. Есть два варианта: `small` и `medium`                                                                 |
| позиция      | строка                | The position of the button in relation to its siblings. Options include: `standalone`, `left`, `right`, and `middle` |
| акцент       | строка                | Акцентный цвет кнопки. Включает опции: `default`, `blue`, и `danger`                                                 |
| скоро        | boolean               | Указывает, отмечена ли кнопка как «скоро» (например, для предстоящих функций)                                                     |
| отключено    | boolean               | Определяет, отключена кнопка или нет                                                                                                                 |
| фокус        | boolean               | Определяет, имеет ли кнопка фокус                                                                                                                    |
| onClick      | функция               | Функция обратного вызова, которая срабатывает при нажатии пользователем на кнопку                                                                    |

</Tab>

</Tabs>

## Группа кнопок

<Tabs>
<Tab title="Usage">
```jsx
import { Button } from "@/ui/input/button/components/Button";
import { ButtonGroup } from "@/ui/input/button/components/ButtonGroup";

export const MyComponent = () => {
return ( <ButtonGroup variant="primary" size="large" accent="blue" className>
<Button
className
Icon={null}
title="Button 1"
fullWidth={false}
variant="primary"
size="medium"
position="standalone"
accent="blue"
soon={false}
disabled={false}
focus={false}
onClick={() => console.log("click")}
/>
<Button
className
Icon={null}
title="Button 2"
fullWidth={false}
variant="secondary"
size="medium"
position="left"
accent="blue"
soon={false}
disabled={false}
focus={false}
onClick={() => console.log("click")}
/>
<Button
className
Icon={null}
title="Button 3"
fullWidth={false}
variant="tertiary"
size="medium"
position="right"
accent="blue"
soon={false}
disabled={false}
focus={false}
onClick={() => console.log("click")}
/> </ButtonGroup>
);
};

````
</Tab>

<Tab title="Props">


| Props | Type | Description |
|-------|------|-------------|
| variant | string | The visual style variant of the buttons within the group. Options include `primary`, `secondary`, and `tertiary` |
| size | string | The size of the buttons within the group. Has two options: `medium` and `small` |
| accent | string | The accent color of the buttons within the group. Options include `default`, `blue` and `danger` |
| className | string | Optional class name for additional styling |
| children | ReactNode | An array of React elements representing the individual buttons within the group |



</Tab>
</Tabs>


## Floating Button

<Tabs>
<Tab title="Usage">

```jsx
import { FloatingButton } from "@/ui/input/button/components/FloatingButton";
import { IconSearch } from "@tabler/icons-react";

export const MyComponent = () => {
  return (
    <FloatingButton
      className
      Icon={IconSearch}
      title="Title"
      size="medium"
      position="standalone"
      applyShadow={true}
      applyBlur={true}
      disabled={false}
      focus={true}
    />
  );
};
````

</Tab>

<Tab title="Props">

| Свойства           | Тип                   | Описание                                                                                                                                         |
| ------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| className          | строка                | Необязательное имя для дополнительной стилизации                                                                                                 |
| Иконка             | `React.ComponentType` | Необязательный компонент иконки, отображаемый на кнопке                                                                                          |
| заголовок          | строка                | Текстовое содержимое кнопки                                                                                                                      |
| размер             | строка                | Размер кнопки. Есть два варианта: `small` и `medium`                                                             |
| позиция            | строка                | The position of the button in relation to its siblings. Options include: `standalone`, `left`, `middle`, `right` |
| применить тень     | boolean               | Определяет, применять ли тень к кнопке                                                                                                           |
| применить размытие | boolean               | Определяет, применять ли размытие к кнопке                                                                                                       |
| отключено          | boolean               | Определяет, отключена ли кнопка                                                                                                                  |
| фокус              | boolean               | Указывает, имеет ли кнопка фокус                                                                                                                 |

</Tab>
</Tabs>

## Группа плавающих кнопок

<Tabs>
<Tab title="Usage">

```jsx
import { FloatingButton } from "@/ui/input/button/components/FloatingButton";
import { FloatingButtonGroup } from "@/ui/input/button/components/FloatingButtonGroup";
import { IconClipboardText, IconCheckbox } from "@tabler/icons-react";

export const MyComponent = () => {
  return (
    <FloatingButtonGroup size="small">
      <FloatingButton
        className
        Icon={IconClipboardText}
        title
        size="small"
        position="standalone"
        applyShadow={true}
        applyBlur={true}
        disabled={false}
        focus={true}
      />
      <FloatingButton
        className
        Icon={IconCheckbox}
        title
        size="small"
        position="standalone"
        applyShadow={true}
        applyBlur={true}
        disabled={false}
      />
    </FloatingButtonGroup>
  );
};
```

</Tab>

<Tab title="Props">

| Свойства | Тип       | Описание                                                                             | По умолчанию |
| -------- | --------- | ------------------------------------------------------------------------------------ | ------------ |
| размер   | строка    | Размер кнопки. Есть два варианта: `small` и `medium` | маленький    |
| children | ReactNode | Массив элементов React, представляющих отдельные кнопки в группе                     |              |

</Tab>

</Tabs>

## Плавающая кнопка с иконкой

<Tabs>
<Tab title="Usage">

```jsx
import { FloatingIconButton } from "@/ui/input/button/components/FloatingIconButton";
import { IconSearch } from "@tabler/icons-react";

export const MyComponent = () => {
  return (
    <FloatingIconButton
      className
      Icon={IconSearch}
      size="small"
      position="standalone"
      applyShadow={true}
      applyBlur={true}
      disabled={false}
      focus={false}
      onClick={() => console.log("click")}
      isActive={true}
    />
  );
};
```

</Tab>

<Tab title="Props">

| Свойства           | Тип                   | Описание                                                                                                                                             |
| ------------------ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| className          | строка                | Необязательное имя для дополнительной стилизации                                                                                                     |
| Иконка             | `React.ComponentType` | Необязательный компонент иконки, отображаемый на кнопке                                                                                              |
| размер             | строка                | Размер кнопки. Есть два варианта: `small` и `medium`                                                                 |
| позиция            | строка                | The position of the button in relation to its siblings. Options include: `standalone`, `left`, `right`, and `middle` |
| применить тень     | boolean               | Определяет, применять ли тень к кнопке                                                                                                               |
| применить размытие | boolean               | Определяет, применять ли размытие к кнопке                                                                                                           |
| отключено          | boolean               | Определяет, отключена ли кнопка                                                                                                                      |
| фокус              | boolean               | Указывает, имеет ли кнопка фокус                                                                                                                     |
| onClick            | функция               | Функция обратного вызова, которая срабатывает при нажатии пользователем на кнопку                                                                    |
| активен            | boolean               | Определяет, находится ли кнопка в активном состоянии                                                                                                 |

</Tab>

</Tabs>

## Группа плавающих кнопок с иконками

<Tabs>
<Tab title="Usage">

```jsx
import { FloatingIconButtonGroup } from "@/ui/input/button/components/FloatingIconButtonGroup";
import { IconClipboardText, IconCheckbox } from "@tabler/icons-react";

export const MyComponent = () => {
  const iconButtons = [
    {
      Icon: IconClipboardText,
      onClick: () => console.log("Button 1 clicked"),
      isActive: true,
    },
    {
      Icon: IconCheckbox,
      onClick: () => console.log("Button 2 clicked"),
      isActive: true,
    },
  ];

  return (
    <FloatingIconButtonGroup
    className
    size="small"
    iconButtons={iconButtons} />
  );
};

```

</Tab>

<Tab title="Props">

| Свойства          | Тип    | Описание                                                                                                                                                                                                                                                                                                                       |
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| className         | строка | Необязательное имя для дополнительной стилизации                                                                                                                                                                                                                                                                               |
| размер            | строка | Размер кнопки. Есть два варианта: `small` и `medium`                                                                                                                                                                                                                                           |
| кнопки с иконками | массив | Массив объектов, каждый из которых представляет собой кнопку с иконкой в группе. Каждый объект должен включать компонент иконки, который вы хотите отобразить на кнопке, функцию, которую вы хотите вызвать при нажатии на кнопку, и информацию о том, должна ли кнопка быть активной или нет. |

</Tab>

</Tabs>

## Light Button

<Tabs>
<Tab title="Usage">

```jsx
import { LightButton } from "@/ui/input/button/components/LightButton";

export const MyComponent = () => {
  return <LightButton
  className
  icon={null}
  title="Title"
  accent="secondary"
  active={false}
  disabled={false}
  focus={true}
  onClick={()=>console.log('click')}
  />;
};
```

</Tab>

<Tab title="Props">

| Свойства  | Тип               | Описание                                                                                           |
| --------- | ----------------- | -------------------------------------------------------------------------------------------------- |
| className | строка            | Необязательное имя для дополнительной стилизации                                                   |
| иконка    | `React.ReactNode` | Иконка, которую вы хотите отобразить на кнопке                                                     |
| заголовок | строка            | Текстовое содержимое кнопки                                                                        |
| акцент    | строка            | Акцентный цвет кнопки. Options include: `secondary` and `tertiary` |
| активный  | boolean           | Определяет, находится ли кнопка в активном состоянии                                               |
| отключено | boolean           | Определяет, отключена ли кнопка                                                                    |
| фокус     | boolean           | Указывает, имеет ли кнопка фокус                                                                   |
| onClick   | функция           | Функция обратного вызова, которая срабатывает при нажатии пользователем на кнопку                  |

</Tab>

</Tabs>

## Light Icon Button

<Tabs>
<Tab title="Usage">

```jsx
import { LightIconButton } from "@/ui/input/button/components/LightIconButton";
import { IconSearch } from "@tabler/icons-react";

export const MyComponent = () => {
  return (
    <LightIconButton
      className
      testId="test1"
      Icon={IconSearch}
      title="Title"
      size="small"
      accent="secondary"
      active={true}
      disabled={false}
      focus={true}
      onClick={() => console.log("click")}
    />
  );
};
```

</Tab>

<Tab title="Props">

| Свойства            | Тип                   | Описание                                                                                           |
| ------------------- | --------------------- | -------------------------------------------------------------------------------------------------- |
| className           | строка                | Необязательное имя для дополнительной стилизации                                                   |
| идентификатор теста | строка                | Идентификатор теста для кнопки                                                                     |
| Иконка              | `React.ComponentType` | Необязательный компонент иконки, отображаемый на кнопке                                            |
| заголовок           | строка                | Текстовое содержимое кнопки                                                                        |
| размер              | строка                | Размер кнопки. Есть два варианта: `small` и `medium`               |
| акцент              | строка                | Акцентный цвет кнопки. Options include: `secondary` and `tertiary` |
| активный            | boolean               | Определяет, находится ли кнопка в активном состоянии                                               |
| отключено           | boolean               | Определяет, отключена ли кнопка                                                                    |
| фокус               | boolean               | Указывает, имеет ли кнопка фокус                                                                   |
| onClick             | функция               | Функция обратного вызова, которая срабатывает при нажатии пользователем на кнопку                  |

</Tab>

</Tabs>

## Главная кнопка

<Tabs>
<Tab title="Usage">

```jsx
import { MainButton } from "@/ui/input/button/components/MainButton";
import { IconCheckbox } from "@tabler/icons-react";

export const MyComponent = () => {
  return (
    <MainButton
      title="Checkbox"
      fullWidth={false}
      variant="primary"
      soon={false}
      Icon={IconCheckbox}
    />
  );
};
```

</Tab>

<Tab title="Props">

| Свойства             | Тип                              | Описание                                                                                         |
| -------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------ |
| заголовок            | строка                           | Текстовое содержимое кнопки                                                                      |
| полнаяШирина         | boolean                          | Определяет, должна ли кнопка занимать всю ширину контейнера                                      |
| вариант              | строка                           | Визуальный стиль кнопки. Options include `primary` and `secondary`               |
| скоро                | boolean                          | Указывает, отмечена ли кнопка как «скоро» (например, для предстоящих функций) |
| Иконка               | `React.ComponentType`            | Необязательный компонент иконки, отображаемый на кнопке                                          |
| React `button` props | `React.ComponentProps<'button'>` | Все стандартные свойства кнопки HTML поддерживаются                                              |

</Tab>

</Tabs>

## Круглая кнопка с иконкой

<Tabs>
<Tab title="Usage">

```jsx
import { RoundedIconButton } from "@/ui/input/button/components/RoundedIconButton";
import { IconSearch } from "@tabler/icons-react";

export const MyComponent = () => {
  return (
    <RoundedIconButton
      Icon={IconSearch}
    />
  );
};
```

</Tab>

<Tab title="Props">

| Свойства             | Тип                                             | Описание |
| -------------------- | ----------------------------------------------- | -------- |
| Иконка               | `React.ComponentType`                           |          |
| React `button` props | `React.ButtonHTMLAttributes<HTMLButtonElement>` |          |

</Tab>

</Tabs>
